package com.pureut.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pureut.order.domain.PurchaseOrder;
import com.pureut.order.dto.PurchaseOrderDto;
import com.pureut.order.vo.OrderReviewVo;
import com.pureut.order.vo.PurchaseOrderVo;
import com.pureut.system.api.vo.UpdatePurchaseOrderDataVo;

import java.util.List;

public interface PurchaseOrderService extends IService<PurchaseOrder> {

    /**
     * 采购订单列表
     */
    List<PurchaseOrderDto> getList(PurchaseOrderVo purchaseOrderVo);

    /**
     * 计划确认
     */
    boolean planConfirmation(PurchaseOrderVo purchaseOrderVo) throws Exception;

    /**
     * 采购下单
     */
    boolean updateOrder(PurchaseOrderVo purchaseOrderVo);

    /**
     * 提交审核
     */
    boolean submitReview(Long id);

    /**
     * 撤销审核
     */
    boolean deleteReview(Long id);

    /**
     * 关结
     */
    boolean closeReview(PurchaseOrderVo purchaseOrderVo);

    /**
     * 查看
     */
    PurchaseOrderDto getViewById(Long id);

    /**
     * 批次到货
     */
    boolean batchArrival(com.pureut.system.api.dto.PurchaseOrderDto purchaseOrderDto);

    /**
     * 修改
     */
    boolean updateOrderById(PurchaseOrderVo purchaseOrderVo);

    /**
     * 审核单据
     */
    boolean purchaseOrderReview(OrderReviewVo orderReviewVo);

    /**
     * 修改采购订单数据（feign调用）
     */
    boolean updateOrderData(UpdatePurchaseOrderDataVo updatePurchaseOrderDataVo);

    /**
     * 修改采购订单退货重量（feign累加）
     * @param updatePurchaseOrderDataVo
     * @return
     */
    boolean updateSalesReturn(UpdatePurchaseOrderDataVo updatePurchaseOrderDataVo);

    /**
     * 修改采购订单退货重量（feign扣除）
     * @param updatePurchaseOrderDataVo
     * @return
     */
    boolean updateDeductSalesReturn(UpdatePurchaseOrderDataVo updatePurchaseOrderDataVo);





}
